#!/bin/sh

MODULE_NAME=cumulocity
MODULE_CFG=/opt/$MODULE_NAME/etc/settings
MODULE_DAEMON=c8y-agent
MODULE_DAEMON_BIN=/opt/$MODULE_NAME/bin/$MODULE_DAEMON
MODULE_CHAIN=mod_$MODULE_NAME
MQTT_PORT_SSL=8883

add_chain() {
  /sbin/iptables -N $MODULE_CHAIN || return
  /sbin/iptables -A $MODULE_CHAIN -p tcp --dport $MQTT_PORT_SSL -j ACCEPT
  /sbin/iptables -A in_mod -j $MODULE_CHAIN
}

del_chain() {
  /sbin/iptables -D in_mod -j $MODULE_CHAIN
  /sbin/iptables -F $MODULE_CHAIN
  /sbin/iptables -X $MODULE_CHAIN
}

case "$1" in
  start|restart)
    if [ "$1" = "restart" ]; then
      echo -n "Restarting module $MODULE_NAME: "
      killall $MODULE_DAEMON 2> /dev/null
    else
      echo -n "Starting module $MODULE_NAME: "
    fi
    . $MODULE_CFG
    if [ "$MOD_CUMULOCITY_ENABLED" != "1" ]; then
      echo "skipped"
      exit 0
    fi
    add_chain
    $MODULE_DAEMON_BIN &
    RETVAL=$?
    if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
    exit $RETVAL
    ;;
  stop)
    echo -n "Stopping module $MODULE_NAME: "
    killall $MODULE_DAEMON 2> /dev/null
    RETVAL=$?
    del_chain
    if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
    exit $RETVAL
    ;;
  status)
    echo -n "Module $MODULE_NAME is "
    killall -0 $MODULE_DAEMON 2> /dev/null
    RETVAL=$?
    if [ $RETVAL = 0 ]; then echo "running"; else echo "stopped"; fi
    exit $RETVAL
    ;;
  defaults)
    cp /opt/$MODULE_NAME/etc/defaults $MODULE_CFG 2> /dev/null
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status|defaults}"
    exit 1
esac
